import ByteArray = require("bytearray-node")
//class ObjectUtils
    
    export  class ObjectUtils
    {
       

        public static baseClone(arg1)
        {
            var loc1=flash.utils.getQualifiedClassName(arg1);
            var loc2=loc1.split("::")[1];
            var loc3=Class(flash.utils.getDefinitionByName(loc1));
            flash.net.registerClassAlias(loc2, loc3);
            var loc4;
            (loc4 = new ByteArray()).writeObject(arg1);
            loc4.position = 0;
            return loc4.readObject();
        }

        public static isString(arg1): Boolean
        {
            return typeof arg1 == "string" || arg1 is String;
        }

        public static isNumber(arg1): Boolean
        {
            return typeof arg1 == "number" || arg1 is Number;
        }

        public static isBoolean(arg1): Boolean
        {
            return typeof arg1 == "boolean" || arg1 is Boolean;
        }

        public static isFunction(arg1): Boolean
        {
            return typeof arg1 == "function" || arg1 is Function;
        }
    }
